package com.it.entity.pay;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 支付记录表（仅用户保费支付场景，强关联保单号）
 * </p>
 *
 * @author yzy
 * @since 2025年09月22日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_pay")
public class AiPay implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 支付记录唯一ID（编码规则：ALIPAY+YYYYMMDD+6位序列号，如ALIPAY20250922000001）
     */
    @TableId(value = "payment_id", type = IdType.AUTO)
    private String paymentId;

    /**
     * 关联保单编号（关联投保单表ai_insure_order的policy_id字段，唯一绑定保单）
     */
    @TableField("policy_id")
    private String policyId;

    /**
     * 支付金额（元，仅用户支付保费，固定为正数，保留2位小数）
     */
    @TableField("payment_amount")
    private BigDecimal paymentAmount;

    /**
     * 支付状态（1-待支付，2-支付成功，3-支付失败）
     */
    @TableField("payment_status")
    private Integer paymentStatus;

    /**
     * 支付宝沙箱买家ID（如2088102146225135，支付成功后从沙箱回调中获取）
     */
    @TableField("alipay_sandbox_user_id")
    private String alipaySandboxUserId;

    /**
     * 支付宝沙箱交易号（沙箱支付成功后生成的唯一流水号，用于对账和订单查询）
     */
    @TableField("alipay_sandbox_trade_no")
    private String alipaySandboxTradeNo;

    /**
     * 订单标题（支付宝沙箱支付页面显示，如“2025年玉米种植险保费-POL20250918960425”）
     */
    @TableField("subject")
    private String subject;

    /**
     * 实际支付时间（支付状态变更为2时，从沙箱回调中获取并填充）
     */
    @TableField("payment_time")
    private LocalDateTime paymentTime;

    /**
     * 支付备注
     */
    @TableField("payment_remark")
    private String paymentRemark;

    /**
     * 支付记录更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;


}
